// app.js
App({
  onLaunch() {

    /**
     * baseUrl
     */
    // const baseUrl = 'http://111.62.40.101:10022/api'
    // const baseUrl = 'https://sishui.ssdglcxxh.com:7010/api'
    // const baseUrl = 'http://211.143.54.76:39001' // 王洋
    // const baseUrl = 'http://211.143.54.76:29001' // 张旭
    // const baseUrl = 'http://211.143.54.76:19001' // 建庚
    const baseUrl = 'http://192.168.11.106:9001'// 建庚本地
    const imgUrl = "https://sishui.ssdglcxxh.com:7010/api"
    // const baseUrl = 'http://192.168.11.106:9001'

    wx.setStorageSync('baseUrl', baseUrl)

    wx.setStorageSync('imgUrl', imgUrl)

    /**
     * 通用请求函数
     * @param url (String) 接口
     * @param methods (String) 请求方式 get/post
     * @param data (Object) 请求参数
     * @param loadingText (String) 请求时，是否展示loading
     * @param headerType (String) 请求头类型
     * @param tokenFlag 是否需要携带token
     * @return Promise实例
     */
    function request(requestObj) {

      // 解构参数信息
      const {
        url,
        method = 'GET',
        data = {},
        loadingText, // loading 文字
        tokenFlag = true, // 请求默认携带token
        headerType = 'application/json' // 默认请求头
      } = requestObj

      return new Promise((resolve, reject) => {

        if (loadingText) {
          wx.showLoading({ title: loadingText })
        }
        const header = {
          'content-type': headerType,
          "Authorization": 'Bearer ' + (tokenFlag ? wx.getStorageSync('token') : null)
        }
        wx.request({
          url: baseUrl + url,
          method: method,
          data,
          header: header,
          success: (res) => {

            try {

              const code = res.data.code || res.code
              console.log(code, 'code')

              // 401 清除token 去引导页重新登录
              if (code == 401) {
                wx.setStorageSync('token', '')
                wx.showToast({ icon: 'none', title: '身份验证已过期，请重新登录', duration: 4500 })
                wx.redirectTo({ url: '/pages/guide/index', })
                reject(res)
              }

              if (code == 500) {
                wx.showToast({ icon: 'none', title: res.data.msg || res.msg || '请求失败请重试', duration: 4500 })
                reject(res)
              }

              // 其余状态正常返回数据
              resolve(res)

            } catch (error) {
              wx.showToast({ icon: 'none', title: res.data.msg || '请求失败请重试', duration: 4500 })
              reject(res)
            }
          },
          fail: (err) => {
            reject(err)
          },
          complete: function () {
            if (loadingText) {
              wx.hideLoading()
            }
          }
        })
      })
    }

    /**
     * 将公用请求方法，注入到微信内置对象中，达到全局调用的目的
     */
    wx.$req = request
  },
  globalData: {
    userInfo: null,
    baseUrl: 'https://sishui.ssdglcxxh.com:7010/api',
    // baseUrl:'http://192.168.11.106:9001',
    imgUrl: "https://sishui.ssdglcxxh.com:7010/api"
  },

})
